package com.lboyang.common.constants;

import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;

/**
 * @Description: 网络传输的共用常量
 * @Date 2021/9/11 20:22
 * @author: A.iguodala
 */
public class NrpcConstants {


    /**
     * 魔数，用作唯一标识
     */
    public static final byte[] MAGIC_NUMBER = {(byte) 'N', (byte) 'N', (byte) 'Z', (byte) 'I'};

    /**
     * 编码格式
     */
    public static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;

    /**
     * 版本号
     */
    public static final byte VERSION = 1;

    /**
     * 长度
     */
    public static final byte TOTAL_LENGTH = 16;

    /**
     * 请求类型码
     */
    public static final byte REQUEST_TYPE = 1;

    /**
     * 响应类型码
     */
    public static final byte RESPONSE_TYPE = 2;

    /**
     * ping 指令
     */
    public static final byte HEARTBEAT_REQUEST_TYPE = 3;
    public static final String PING = "ping";

    /**
     * pong 指令
     */
    public static final byte HEARTBEAT_RESPONSE_TYPE = 4;
    public static final String PONG = "pong";

    /**
     * 首部长度
     */
    public static final int HEAD_LENGTH = 16;

    /**
     * 最大帧长度
     */
    public static final int MAX_FRAME_LENGTH = 8 * 1024 * 1024;

    /**
     * 服务器端口
     */
    public static final int SERVER_PORT = 9998;
}
